package NewCoderBranchControl;

import java.util.Scanner;

public class Exercise25 {

//    描述
//    从键盘输入a, b, c的值，编程计算并输出一元二次方程ax2 + bx + c = 0的根，当a = 0时，输出“Not quadratic equation”，当a ≠ 0时，根据△ = b2 - 4*a*c的三种情况计算并输出方程的根。
//    输入描述：
//    多组输入，一行，包含三个浮点数a, b, c，以一个空格分隔，表示一元二次方程ax2 + bx + c = 0的系数。
//    输出描述：
//    针对每组输入，输出一行，输出一元二次方程ax2 + bx +c = 0的根的情况。
//    如果a = 0，输出“Not quadratic equation”；
//    如果a ≠  0，分三种情况：
//            △ = 0，则两个实根相等，输出形式为：x1=x2=...。
//            △  > 0，则两个实根不等，输出形式为：x1=...;x2=...，其中x1  <=  x2。
//            △  < 0，则有两个虚根，则输出：x1=实部-虚部i;x2=实部+虚部i，即x1的虚部系数小于等于x2的虚部系数，实部为0时不可省略。实部= -b / (2*a),虚部= sqrt(-△ ) / (2*a)
//    所有实数部分要求精确到小数点后2位，数字、符号之间没有空格。
//    示例1
//    输入：
//            2.0 7.0 1.0
//    输出：
//    x1=-3.35;x2=-0.15
//            示例2
//    输入：
//            0.0 3.0 3.0
//    输出：
//    Not quadratic equation
//    示例3
//    输入：
//            1 2 1
//    输出：
//    x1=x2=-1.00
//            示例4
//    输入：
//            2 2 5
//    输出：
//    x1=-0.50-1.50i;x2=-0.50+1.50i
//    示例5
//    输入：
//            1 0 1
//    输出：
//    x1=0.00-1.00i;x2=0.00+1.00i

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            Double a = sc.nextDouble();
            Double b = sc.nextDouble();
            Double c = sc.nextDouble();
            if (a == 0) {
                System.out.println("Not quadratic equation");
            } else {
                double x = Math.pow(b, 2) - 4 * a * c;
                double x1 = 0.0;
                double x2 = 0.0;
                if (x == 0) {
                    x1 = x2 = (-b) / (2 * a);
                    System.out.printf("x1=x2=%.2f\n", x1);
                } else if (x > 0) {
                    x1 = (((-b) + Math.sqrt(x)) / (2 * a));
                    x2 = (((-b) - Math.sqrt(x)) / (2 * a));
                    if (x1 > x2) {
                        double tmp = 0.0;
                        tmp = x1;
                        x1 = x2;
                        x2 = tmp;
                        System.out.printf("x1=%.2f;x2=%.2f\n", x1, x2);
                    } else {
                        System.out.printf("x1=%.2f;x2=%.2f\n", x1, x2);
                    }
                } else if (x < 0) {
                    double real = (-b) / (2 * a);
                    if (b == 0.00) {
                        real = 0.00;
                    }
                    double imag = Math.sqrt(-x) / (2 * a);
                    System.out.printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n", real, imag, real, imag);
                }
            }
        }
    }
}
